Module এবং Artifact এর ধারণা

Java Technologies - অ্যাপাচি আইভি (Apache IVY) Apache IVY এর বেসিক কনসেপ্ট |
136
136

Apache Ivy একটি শক্তিশালী ডিপেন্ডেন্সি ম্যানেজমেন্ট টুল যা আপনার Java প্রোজেক্টের জন্য বাইরের লাইব্রেরি বা ডিপেন্ডেন্সি ম্যানেজ করতে ব্যবহৃত হয়। Ivy ডিপেন্ডেন্সি ম্যানেজমেন্ট সিস্টেমে Module এবং Artifact দুটি গুরুত্বপূর্ণ ধারণা, যেগুলি আপনাকে লাইব্রেরি, তাদের সংস্করণ এবং উপাদানগুলি (components) সঠিকভাবে ম্যানেজ করতে সাহায্য করে।

Module

Module হল একটি একক ইউনিট বা একক উপাদান, যা আপনার প্রোজেক্টের বাইরের লাইব্রেরি বা ডিপেন্ডেন্সি হতে পারে। প্রতিটি Module-এর একটি নির্দিষ্ট version থাকে, এবং এটি একটি নির্দিষ্ট organisation বা গ্রুপের অন্তর্গত।

একটি Module সাধারণত একটি লাইব্রেরি বা প্রোজেক্টের ভিত্তিতে পরিচিত হয় এবং এটি Ivy রিপোজিটরিতে সংরক্ষিত থাকে। উদাহরণস্বরূপ, Commons Lang একটি module হতে পারে যার বিভিন্ন সংস্করণ (যেমন 3.12.0) উপলব্ধ থাকে।

Module-এর মধ্যে বিভিন্ন Artifacts থাকতে পারে, যেগুলি একাধিক ফাইলের সমষ্টি হতে পারে, যেমন JAR ফাইল, WAR ফাইল, pom.xml ফাইল ইত্যাদি।

Module এর উদাহরণ:

<ivy-module version="2.0">
    <info organisation="org.apache.commons" module="commons-lang3" />
    <dependencies>
        <dependency org="org.apache.commons" name="commons-lang3" rev="3.12.0"/>
    </dependencies>
</ivy-module>

এখানে:

  • organisation="org.apache.commons": এটি module-এর organisation বা গ্রুপের নাম।
  • module="commons-lang3": এটি module-এর নাম।
  • rev="3.12.0": এটি module-এর নির্দিষ্ট সংস্করণ (version)।

Artifact

Artifact একটি ফাইল বা একাধিক ফাইলের সমষ্টি, যা একটি নির্দিষ্ট Module এর অংশ হিসেবে প্রকাশিত হয়। সাধারণত artifact হল একটি JAR ফাইল, WAR ফাইল, pom.xml অথবা zip ফাইল, যা একটি module-এর লাইব্রেরি বা প্রোগ্রামের কার্যকরী উপাদান হিসেবে কাজ করে।

একটি Artifact এর মধ্যে version এবং type থাকে, যা আইডেন্টিফাই করে এটি কী ধরনের ফাইল। উদাহরণস্বরূপ, একটি commons-lang3-3.12.0.jar একটি JAR artifact হতে পারে।

Artifact এর উদাহরণ:

<ivy-module version="2.0">
    <info organisation="org.apache.commons" module="commons-lang3" />
    <artifacts>
        <artifact name="commons-lang3" type="jar" ext="jar" />
    </artifacts>
</ivy-module>

এখানে:

  • <artifact>: এটি artifact কে নির্দেশ করে।
  • name="commons-lang3": এটি artifact এর নাম।
  • type="jar": এটি artifact এর ধরনের ফাইল, এখানে JAR
  • ext="jar": এটি artifact এর এক্সটেনশন, এখানে JAR ফাইলটি।

Module এবং Artifact এর মধ্যে সম্পর্ক

  • Module একটি একক ইউনিট যা একটি নির্দিষ্ট group এবং version দিয়ে চিহ্নিত হয়।
  • Artifact একটি ফাইল (যেমন JAR, WAR, POM) যা একটি module-এর অংশ হিসেবে প্রকাশিত হয়।

যদি commons-lang3 মডিউলটি একটি JAR artifact হিসেবে প্রকাশিত হয়, তবে সেই JAR ফাইলটি commons-lang3 মডিউলটির অন্তর্গত একটি artifact হবে।

Module এবং Artifact ব্যবহার করা

Ivy আপনার module এবং artifact রেজলভ করে ডিপেন্ডেন্সি ম্যানেজমেন্ট সম্পাদন করে। একটি সাধারণ ivy.xml ফাইলে module এবং artifact এর ব্যবহারের উদাহরণ:

<ivy-module version="2.0">
    <info organisation="org.apache.commons" module="commons-lang3" />
    
    <!-- Defining dependencies -->
    <dependencies>
        <dependency org="org.apache.commons" name="commons-lang3" rev="3.12.0">
            <artifact name="commons-lang3" type="jar" ext="jar"/>
        </dependency>
    </dependencies>
</ivy-module>

এখানে:

  • <dependency> ট্যাগে নির্দিষ্ট করা হয়েছে যে, commons-lang3 মডিউলটি 3.12.0 সংস্করণে ডাউনলোড করা হবে।
  • <artifact> ট্যাগটি নির্দেশ করছে যে, এটি একটি JAR ফাইল (artifact) হবে।

Module এবং Artifact এর মধ্যে পার্থক্য

  1. Module: এটি একটি মেটাডেটা ইউনিট যা একটি নির্দিষ্ট গ্রুপ এবং সংস্করণে লাইব্রেরি বা প্রোজেক্ট নির্দেশ করে।
    • উদাহরণ: org.apache.commons:commons-lang3:3.12.0
  2. Artifact: এটি একটি ফাইল (যেমন JAR, WAR, POM) যা module এর অন্তর্গত এবং ডিপেন্ডেন্সি রেজলভেশন প্রক্রিয়ায় ব্যবহৃত হয়।
    • উদাহরণ: commons-lang3-3.12.0.jar

Ivy এর মাধ্যমে Module এবং Artifact রেজলভ করা

Ivy স্বয়ংক্রিয়ভাবে ডিপেন্ডেন্সির মডিউল এবং আর্কাইভ ফাইলগুলিকে রেজলভ করে ডাউনলোড করে। যখন আপনি ivy:resolve টাস্ক চালান, এটি ivy.xml ফাইল অনুযায়ী module এবং artifact রেজলভ করে ডাউনলোড করবে।

<project name="IvyModuleArtifactExample" default="resolve-dependencies" basedir=".">
    <taskdef name="ivy" classname="org.apache.ivy.ant.IvyTask"/>
    
    <target name="resolve-dependencies">
        <ivy:resolve file="ivy.xml"/>
    </target>
</project>

এখানে, ivy.xml ফাইলের মধ্যে ডিপেন্ডেন্সি রেজলভ করা হবে এবং নির্দিষ্ট module এবং artifact ডাউনলোড হবে।


সারাংশ

Module এবং Artifact হল Apache Ivy এর দুটি গুরুত্বপূর্ণ ধারণা:

  • Module: এটি একটি নির্দিষ্ট লাইব্রেরি বা প্রোজেক্টের একটি ইউনিট, যা গ্রুপ এবং সংস্করণ দিয়ে চিহ্নিত হয়।
  • Artifact: এটি একটি ফাইল, যা module এর অংশ হিসেবে প্রকাশিত হয় এবং এটি লাইব্রেরির কার্যকরী উপাদান হয়ে থাকে।

Apache Ivy আপনার module এবং artifact রেজলভ করে, লাইব্রেরি বা ফাইলগুলোকে ডাউনলোড করে এবং আপনার প্রোজেক্টের ডিপেন্ডেন্সি ম্যানেজমেন্ট সহজ করে তোলে।

common.content_added_by
টপ রেটেড অ্যাপ

স্যাট অ্যাকাডেমী অ্যাপ

আমাদের অল-ইন-ওয়ান মোবাইল অ্যাপের মাধ্যমে সীমাহীন শেখার সুযোগ উপভোগ করুন।

ভিডিও
লাইভ ক্লাস
এক্সাম
ডাউনলোড করুন
Promotion